Apache Commons Collections এবং Java Collections Framework এর পার্থক্য

Java Technologies - অ্যাপাচি কমন্স কালেকশনস (Apache Common Collection) পরিচিতি |
116
116

Apache Commons Collections এবং Java Collections Framework (JCF) উভয়ই Java ডিপেনডেন্সি ম্যানেজমেন্ট এবং ডাটা স্ট্রাকচার ব্যবস্থাপনার জন্য ব্যবহৃত হয়, তবে এদের মধ্যে কিছু মৌলিক পার্থক্য রয়েছে। JCF Java-এর স্ট্যান্ডার্ড লাইব্রেরির অংশ, যেখানে সাধারণ ডাটা স্ট্রাকচার এবং তাদের জন্য বিভিন্ন ইন্টারফেস এবং ক্লাস রয়েছে। অপরদিকে, Apache Commons Collections হল একটি লাইব্রেরি যা Java Collections Framework এর উপর ভিত্তি করে উন্নত ফিচার এবং বিকল্প ডাটা স্ট্রাকচার সরবরাহ করে।

এই লেখায় আমরা আলোচনা করব Apache Commons Collections এবং Java Collections Framework এর মধ্যে প্রধান পার্থক্যগুলো।


1. ডাটা স্ট্রাকচার এবং ক্লাস

Java Collections Framework (JCF):

  • Java Collections Framework-এর মধ্যে কিছু সাধারণ ডাটা স্ট্রাকচার রয়েছে, যেমন:
    • List: যেমন ArrayList, LinkedList
    • Set: যেমন HashSet, TreeSet
    • Map: যেমন HashMap, TreeMap

Apache Commons Collections:

  • Apache Commons Collections বিভিন্ন বিশেষ ডাটা স্ট্রাকচার সরবরাহ করে যা Java Collections Framework এর মধ্যে অন্তর্ভুক্ত নয়। কিছু উদাহরণ:
    • Bag: এটি একটি কালেকশন যা আইটেমের সংখ্যা ট্র্যাক করে (যেমন একাধিক আইটেমের উপস্থিতি গুনে গুনে ট্র্যাক করা)।
    • MultiMap: এটি একটি ম্যাপ যেখানে একাধিক মান এক কীগুলির সাথে যুক্ত থাকতে পারে।
    • BidiMap: এটি একটি ম্যাপ যেখানে আপনি কী থেকে মান এবং মান থেকে কী উভয় দিকেই অনুসন্ধান করতে পারেন।
    • OrderedMap: এটি একটি ম্যাপ যা ইনপুট অর্ডারের ভিত্তিতে মান সংরক্ষণ করে।

উদাহরণ:

Bag<String> bag = new HashBag<>();
bag.add("apple");
bag.add("apple");
bag.add("banana");

এখানে Bag Java Collections Framework এর অংশ নয়, এটি Apache Commons Collections এর একটি বিশেষ ডাটা স্ট্রাকচার।


2. ডিপেনডেন্সি ম্যানেজমেন্ট

Java Collections Framework (JCF):

  • JCF একটি স্ট্যান্ডার্ড লাইব্রেরি যা Java এর JDK এর সাথে অন্তর্ভুক্ত থাকে। এটি Java প্রোগ্রামিং ভাষার অঙ্গ হিসাবে কাজ করে এবং ডিপেনডেন্সি ব্যবস্থাপনার জন্য অতিরিক্ত লাইব্রেরি ইনস্টল করার প্রয়োজন হয় না।

Apache Commons Collections:

  • Apache Commons Collections একটি তৃতীয় পক্ষের লাইব্রেরি। এটি Maven বা Gradle এর মাধ্যমে প্রোজেক্টে অন্তর্ভুক্ত করতে হয়। JCF-এর উপর ভিত্তি করে আরো উন্নত এবং কাস্টম ডাটা স্ট্রাকচার এবং ইউটিলিটি ফাংশন প্রদান করে।

Maven ডিপেনডেন্সি উদাহরণ:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-collections4</artifactId>
    <version>4.4</version>
</dependency>

এখানে আপনি Apache Commons Collections লাইব্রেরি Maven-এর মাধ্যমে আপনার প্রোজেক্টে অন্তর্ভুক্ত করছেন।


3. ফিচার এবং কাস্টমাইজেশন

Java Collections Framework (JCF):

  • JCF শুধুমাত্র মৌলিক ডাটা স্ট্রাকচার এবং অপারেশনগুলি সমর্থন করে। এটি List, Set, Map, Queue ইত্যাদি ডাটা স্ট্রাকচারগুলির জন্য মৌলিক ফাংশনালিটি দেয়। কিন্তু এতে বিশেষ ফিচার বা ডাটা স্ট্রাকচার খুব কম রয়েছে যা কাস্টমাইজেশন এবং উচ্চতর ডিপেনডেন্সি ব্যবস্থাপনা সমর্থন করে।

Apache Commons Collections:

  • Apache Commons Collections JCF-এর স্ট্যান্ডার্ড ফিচারগুলির উপর অতিরিক্ত কাস্টমাইজেশন এবং বিশেষ ডাটা স্ট্রাকচার সরবরাহ করে। যেমন:
    • MultiMap, Bag, BidiMap, OrderedMap ইত্যাদি ডাটা স্ট্রাকচারগুলি JCF-এ নেই।
    • এগুলির মাধ্যমে আপনি একাধিক মান বা অর্ডারযুক্ত ডাটা ম্যানেজ করতে পারেন, যা Java Collections Framework এর মাধ্যমে করা সম্ভব নয়।

4. প্রেডিকেট, ফিল্টার, এবং ট্রান্সফর্মেশন

Java Collections Framework (JCF):

  • JCF ডাটা স্ট্রাকচারের জন্য প্রেডিকেট বা ফিল্টারিং ফাংশনালিটি সরাসরি সমর্থন করে না। আপনি Java 8 থেকে Streams API ব্যবহার করে ফিল্টারিং বা ট্রান্সফরমেশন করতে পারেন, তবে এটি একেবারে মৌলিকভাবে নয়।

Apache Commons Collections:

  • Apache Commons Collections এ অনেক বেশি ফাংশনালিটিজ সরবরাহ করা হয়েছে, যেমন:
    • CollectionUtils: এটি একটি ইউটিলিটি ক্লাস যা কালেকশনগুলির মধ্যে ফিল্টারিং, ট্রান্সফর্মেশন, প্রেডিকেট ব্যবহার করতে সহায়তা করে।
    • IteratorUtils: এটি আপনাকে Iterator এর উপর নানা ধরনের কার্যক্রম (যেমন সংগ্রহ করা, ট্রান্সফর্মেশন) করতে সহায়তা করে।

উদাহরণ:

Collection<String> collection = Arrays.asList("apple", "banana", "cherry");
Collection<String> filtered = CollectionUtils.select(collection, new Predicate<String>() {
    public boolean evaluate(String item) {
        return item.startsWith("a");
    }
});

এখানে:

  • CollectionUtils.select ব্যবহার করে আমরা "a" দিয়ে শুরু হওয়া আইটেমগুলো ফিল্টার করেছি।

5. Immutable Collections

Java Collections Framework (JCF):

  • JCF এর মধ্যে অনেক কালেকশন মিউটেবল (পরিবর্তনযোগ্য) থাকে, যেমন ArrayList, HashMap, ইত্যাদি। Immutable কালেকশন সপোর্ট করার জন্য Java 9 থেকে List.of(), Set.of() ইত্যাদি ইমিউটেবল কনস্ট্রাক্টর এসেছে।

Apache Commons Collections:

  • Commons Collections ইমিউটেবল বা অপরিবর্তনীয় কালেকশন সরবরাহ করে। এর মাধ্যমে আপনি একটি কালেকশন তৈরি করতে পারেন যা পরিবর্তনযোগ্য নয় এবং এটি থ্রেড সেফ।

সারাংশ

Java Collections Framework (JCF) এবং Apache Commons Collections উভয়ই গুরুত্বপূর্ণ, তবে তারা ভিন্ন উদ্দেশ্যে ব্যবহৃত হয়। JCF একটি মৌলিক ও স্ট্যান্ডার্ড ডিপেনডেন্সি লাইব্রেরি যা Java-তে সাধারণ কালেকশন ব্যবস্থাপনা প্রদান করে। অপরদিকে, Apache Commons Collections Java Collections Framework এর উপর ভিত্তি করে অতিরিক্ত ডাটা স্ট্রাকচার এবং ইউটিলিটি ফাংশনালিটি প্রদান করে, যেমন MultiMap, Bag, BidiMap ইত্যাদি, যা JCF-এ নেই। এটি ফিল্টারিং, প্রেডিকেট, ট্রান্সফরমেশন, এবং Immutable Collections তৈরি করার সুবিধাও প্রদান করে।

Apache Commons Collections একটি উন্নত ফিচার এবং কাস্টমাইজেশন প্রদান করে, যা বিশেষ করে বড় এবং জটিল প্রোজেক্টগুলির জন্য উপকারী।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion